The Internet is a global system of interconnected computer networks that use an Internet Protocol to serve billions of users worldwide. It is a network of networks that consists of millions of private, public, academic, business, and government networks, of local to global scope, that are linked by a broad array of electronic, wireless and optical networking technologies.
An Internet Protocol address (IP address) is a numerical label assigned to each device (e.g., computer, smartphone, server, printer) participating in a computer network that uses the Internet Protocol for communication. An IP address serves two principal functions: host (or network interface) identification and location addressing.
IP addresses, however, are numeric addresses that are not easy for people to use and remember. As a consequence, a Domain Name System (DNS) was developed to translate human-friendly computer hostnames into IP addresses. Users take advantage of this when they recite meaningful Uniform Resource Locators (URLs) and e-mail addresses without having to know how the computer actually locates them.
In addition, the DNS system makes it possible to assign domain names to groups of Internet resources and users in a meaningful way, independent of each entity's physical location. Because of this, World Wide Web (WWW) hyperlinks and Internet contact information can remain consistent and constant even if the current Internet routing arrangements change or the participant uses a mobile device. The Domain Name System also stores other types of information, such as the list of mail servers that accept email for a given Internet domain. By providing a worldwide, distributed keyword-based redirection service, the Domain Name System is an essential component of the functionality of the Internet.
The Domain Name System distributes the responsibility of assigning domain names and mapping those names to IP addresses by designating authoritative name servers for each domain. Authoritative name servers are assigned to be responsible for their particular domains, and in turn can assign other authoritative name servers for their sub-domains.
When users request content via the Internet with the user-friendly URLs, a DNS query is initiated that sends a request to a name server, and the name server returns IP addresses for the content associated with the domain. This process of translating domain names to IP addresses (also referred to as DNS resolution), however, may be a significant fraction of the time it takes to download a webpage. As a consequence, techniques have been developed to prefetch IP addresses for content before a user actually requests the content. In this way, when the user requests the content, the DNS resolution has already been performed.
Performing DNS prefetching, however, may adversely affect performance of the device that is accessing the content. For example, known DNS prefetching operations utilize a substantial amount of power that may especially affect the use of mobile devices. In addition, DNS prefetching may actually delay the transmissions of other traffic that is needed to render a webpage; thus degrading webpage download time. As a consequence, existing DNS prefetching techniques are often unsatisfactory and are potentially counterproductive.